﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UnicornFW.Registers
{
    public enum UcX86Regs : int 
    {

        // X86 registers

        UC_X86_REG_INVALID = 0,
        UC_X86_REG_AH = 1,
        UC_X86_REG_AL = 2,
        UC_X86_REG_AX = 3,
        UC_X86_REG_BH = 4,
        UC_X86_REG_BL = 5,
        UC_X86_REG_BP = 6,
        UC_X86_REG_BPL = 7,
        UC_X86_REG_BX = 8,
        UC_X86_REG_CH = 9,
        UC_X86_REG_CL = 10,
        UC_X86_REG_CS = 11,
        UC_X86_REG_CX = 12,
        UC_X86_REG_DH = 13,
        UC_X86_REG_DI = 14,
        UC_X86_REG_DIL = 15,
        UC_X86_REG_DL = 16,
        UC_X86_REG_DS = 17,
        UC_X86_REG_DX = 18,
        UC_X86_REG_EAX = 19,
        UC_X86_REG_EBP = 20,
        UC_X86_REG_EBX = 21,
        UC_X86_REG_ECX = 22,
        UC_X86_REG_EDI = 23,
        UC_X86_REG_EDX = 24,
        UC_X86_REG_EFLAGS = 25,
        UC_X86_REG_EIP = 26,
        UC_X86_REG_ES = 28,
        UC_X86_REG_ESI = 29,
        UC_X86_REG_ESP = 30,
        UC_X86_REG_FPSW = 31,
        UC_X86_REG_FS = 32,
        UC_X86_REG_GS = 33,
        UC_X86_REG_IP = 34,
        UC_X86_REG_RAX = 35,
        UC_X86_REG_RBP = 36,
        UC_X86_REG_RBX = 37,
        UC_X86_REG_RCX = 38,
        UC_X86_REG_RDI = 39,
        UC_X86_REG_RDX = 40,
        UC_X86_REG_RIP = 41,
        UC_X86_REG_RSI = 43,
        UC_X86_REG_RSP = 44,
        UC_X86_REG_SI = 45,
        UC_X86_REG_SIL = 46,
        UC_X86_REG_SP = 47,
        UC_X86_REG_SPL = 48,
        UC_X86_REG_SS = 49,
        UC_X86_REG_CR0 = 50,
        UC_X86_REG_CR1 = 51,
        UC_X86_REG_CR2 = 52,
        UC_X86_REG_CR3 = 53,
        UC_X86_REG_CR4 = 54,
        UC_X86_REG_CR8 = 58,
        UC_X86_REG_DR0 = 66,
        UC_X86_REG_DR1 = 67,
        UC_X86_REG_DR2 = 68,
        UC_X86_REG_DR3 = 69,
        UC_X86_REG_DR4 = 70,
        UC_X86_REG_DR5 = 71,
        UC_X86_REG_DR6 = 72,
        UC_X86_REG_DR7 = 73,
        UC_X86_REG_FP0 = 82,
        UC_X86_REG_FP1 = 83,
        UC_X86_REG_FP2 = 84,
        UC_X86_REG_FP3 = 85,
        UC_X86_REG_FP4 = 86,
        UC_X86_REG_FP5 = 87,
        UC_X86_REG_FP6 = 88,
        UC_X86_REG_FP7 = 89,
        UC_X86_REG_K0 = 90,
        UC_X86_REG_K1 = 91,
        UC_X86_REG_K2 = 92,
        UC_X86_REG_K3 = 93,
        UC_X86_REG_K4 = 94,
        UC_X86_REG_K5 = 95,
        UC_X86_REG_K6 = 96,
        UC_X86_REG_K7 = 97,
        UC_X86_REG_MM0 = 98,
        UC_X86_REG_MM1 = 99,
        UC_X86_REG_MM2 = 100,
        UC_X86_REG_MM3 = 101,
        UC_X86_REG_MM4 = 102,
        UC_X86_REG_MM5 = 103,
        UC_X86_REG_MM6 = 104,
        UC_X86_REG_MM7 = 105,
        UC_X86_REG_R8 = 106,
        UC_X86_REG_R9 = 107,
        UC_X86_REG_R10 = 108,
        UC_X86_REG_R11 = 109,
        UC_X86_REG_R12 = 110,
        UC_X86_REG_R13 = 111,
        UC_X86_REG_R14 = 112,
        UC_X86_REG_R15 = 113,
        UC_X86_REG_ST0 = 114,
        UC_X86_REG_ST1 = 115,
        UC_X86_REG_ST2 = 116,
        UC_X86_REG_ST3 = 117,
        UC_X86_REG_ST4 = 118,
        UC_X86_REG_ST5 = 119,
        UC_X86_REG_ST6 = 120,
        UC_X86_REG_ST7 = 121,
        UC_X86_REG_XMM0 = 122,
        UC_X86_REG_XMM1 = 123,
        UC_X86_REG_XMM2 = 124,
        UC_X86_REG_XMM3 = 125,
        UC_X86_REG_XMM4 = 126,
        UC_X86_REG_XMM5 = 127,
        UC_X86_REG_XMM6 = 128,
        UC_X86_REG_XMM7 = 129,
        UC_X86_REG_XMM8 = 130,
        UC_X86_REG_XMM9 = 131,
        UC_X86_REG_XMM10 = 132,
        UC_X86_REG_XMM11 = 133,
        UC_X86_REG_XMM12 = 134,
        UC_X86_REG_XMM13 = 135,
        UC_X86_REG_XMM14 = 136,
        UC_X86_REG_XMM15 = 137,
        UC_X86_REG_XMM16 = 138,
        UC_X86_REG_XMM17 = 139,
        UC_X86_REG_XMM18 = 140,
        UC_X86_REG_XMM19 = 141,
        UC_X86_REG_XMM20 = 142,
        UC_X86_REG_XMM21 = 143,
        UC_X86_REG_XMM22 = 144,
        UC_X86_REG_XMM23 = 145,
        UC_X86_REG_XMM24 = 146,
        UC_X86_REG_XMM25 = 147,
        UC_X86_REG_XMM26 = 148,
        UC_X86_REG_XMM27 = 149,
        UC_X86_REG_XMM28 = 150,
        UC_X86_REG_XMM29 = 151,
        UC_X86_REG_XMM30 = 152,
        UC_X86_REG_XMM31 = 153,
        UC_X86_REG_YMM0 = 154,
        UC_X86_REG_YMM1 = 155,
        UC_X86_REG_YMM2 = 156,
        UC_X86_REG_YMM3 = 157,
        UC_X86_REG_YMM4 = 158,
        UC_X86_REG_YMM5 = 159,
        UC_X86_REG_YMM6 = 160,
        UC_X86_REG_YMM7 = 161,
        UC_X86_REG_YMM8 = 162,
        UC_X86_REG_YMM9 = 163,
        UC_X86_REG_YMM10 = 164,
        UC_X86_REG_YMM11 = 165,
        UC_X86_REG_YMM12 = 166,
        UC_X86_REG_YMM13 = 167,
        UC_X86_REG_YMM14 = 168,
        UC_X86_REG_YMM15 = 169,
        UC_X86_REG_YMM16 = 170,
        UC_X86_REG_YMM17 = 171,
        UC_X86_REG_YMM18 = 172,
        UC_X86_REG_YMM19 = 173,
        UC_X86_REG_YMM20 = 174,
        UC_X86_REG_YMM21 = 175,
        UC_X86_REG_YMM22 = 176,
        UC_X86_REG_YMM23 = 177,
        UC_X86_REG_YMM24 = 178,
        UC_X86_REG_YMM25 = 179,
        UC_X86_REG_YMM26 = 180,
        UC_X86_REG_YMM27 = 181,
        UC_X86_REG_YMM28 = 182,
        UC_X86_REG_YMM29 = 183,
        UC_X86_REG_YMM30 = 184,
        UC_X86_REG_YMM31 = 185,
        UC_X86_REG_ZMM0 = 186,
        UC_X86_REG_ZMM1 = 187,
        UC_X86_REG_ZMM2 = 188,
        UC_X86_REG_ZMM3 = 189,
        UC_X86_REG_ZMM4 = 190,
        UC_X86_REG_ZMM5 = 191,
        UC_X86_REG_ZMM6 = 192,
        UC_X86_REG_ZMM7 = 193,
        UC_X86_REG_ZMM8 = 194,
        UC_X86_REG_ZMM9 = 195,
        UC_X86_REG_ZMM10 = 196,
        UC_X86_REG_ZMM11 = 197,
        UC_X86_REG_ZMM12 = 198,
        UC_X86_REG_ZMM13 = 199,
        UC_X86_REG_ZMM14 = 200,
        UC_X86_REG_ZMM15 = 201,
        UC_X86_REG_ZMM16 = 202,
        UC_X86_REG_ZMM17 = 203,
        UC_X86_REG_ZMM18 = 204,
        UC_X86_REG_ZMM19 = 205,
        UC_X86_REG_ZMM20 = 206,
        UC_X86_REG_ZMM21 = 207,
        UC_X86_REG_ZMM22 = 208,
        UC_X86_REG_ZMM23 = 209,
        UC_X86_REG_ZMM24 = 210,
        UC_X86_REG_ZMM25 = 211,
        UC_X86_REG_ZMM26 = 212,
        UC_X86_REG_ZMM27 = 213,
        UC_X86_REG_ZMM28 = 214,
        UC_X86_REG_ZMM29 = 215,
        UC_X86_REG_ZMM30 = 216,
        UC_X86_REG_ZMM31 = 217,
        UC_X86_REG_R8B = 218,
        UC_X86_REG_R9B = 219,
        UC_X86_REG_R10B = 220,
        UC_X86_REG_R11B = 221,
        UC_X86_REG_R12B = 222,
        UC_X86_REG_R13B = 223,
        UC_X86_REG_R14B = 224,
        UC_X86_REG_R15B = 225,
        UC_X86_REG_R8D = 226,
        UC_X86_REG_R9D = 227,
        UC_X86_REG_R10D = 228,
        UC_X86_REG_R11D = 229,
        UC_X86_REG_R12D = 230,
        UC_X86_REG_R13D = 231,
        UC_X86_REG_R14D = 232,
        UC_X86_REG_R15D = 233,
        UC_X86_REG_R8W = 234,
        UC_X86_REG_R9W = 235,
        UC_X86_REG_R10W = 236,
        UC_X86_REG_R11W = 237,
        UC_X86_REG_R12W = 238,
        UC_X86_REG_R13W = 239,
        UC_X86_REG_R14W = 240,
        UC_X86_REG_R15W = 241,
        UC_X86_REG_IDTR = 242,
        UC_X86_REG_GDTR = 243,
        UC_X86_REG_LDTR = 244,
        UC_X86_REG_TR = 245,
        UC_X86_REG_FPCW = 246,
        UC_X86_REG_FPTAG = 247,
        UC_X86_REG_MSR = 248,
        UC_X86_REG_MXCSR = 249,
        UC_X86_REG_FS_BASE = 250,
        UC_X86_REG_GS_BASE = 251,
        UC_X86_REG_FLAGS = 252,
        UC_X86_REG_RFLAGS = 253,
        UC_X86_REG_FIP = 254,
        UC_X86_REG_FCS = 255,
        UC_X86_REG_FDP = 256,
        UC_X86_REG_FDS = 257,
        UC_X86_REG_FOP = 258,
        UC_X86_REG_ENDING = 259,

    }
}
